#!/usr/bin/env python
# -*- coding: UTF-8 -*-

"""Utilitat que implementa un servidor de correu smpt i
guarda els missatges que reb a un arxiu. D'aquesta manera es pot
depurar l'aplicació sense tenir un servidor smtp 'standard' a la màquina

Fa servir el port 22 així que s'ha d'executar amb privilegis de root.

El servidor deixa els missatges al lloc on s'executa

"""

from datetime import datetime
import asyncore
from smtpd import SMTPServer

class EmlServer(SMTPServer):
    "Definició del servidor"
    no = 0
    def process_message(self, peer, mailfrom, rcpttos, data):
        filename = '%s-%d.eml' % (datetime.now().strftime('%Y%m%d%H%M%S'),
                self.no)
        f = open(filename, 'w')
        f.write(data)
        f.close
        print '%s saved.' % filename
        print data
        self.no += 1


def run():
    foo = EmlServer(('localhost', 25), None)
    print "iniciant el servidor"
    try:
        asyncore.loop()
    except KeyboardInterrupt:
        pass


if __name__ == '__main__':
	run()
